/**
 * 
 */
package com.alstudio.module;

/**
 * ALModuleManager模块管理器工作状态监听接口定义
 * 
 * @author alonso lee
 * 
 */
public interface ModuleManagerWorkingStateObserver {

	/**
	 * 新模块注册到管理器后，此回调将被执行
	 * 
	 * @param module
	 *            新注册的模块
	 */
	public void onModuleRegister(BaseModule module);

	/**
	 * 模块从管理器移除后，此回调将被执行
	 * 
	 * @param module
	 *            被移除的模块
	 */
	public void onModuleUnregister(BaseModule module);

	/**
	 * 当模块接收到新事件时，此回调将被执行
	 * 
	 * @param module
	 *            接收到事件的模块
	 * @param event
	 *            接收到的事件
	 */
	public void onModuleReceveEvent(BaseModule module, ModuleEvent event);

	/**
	 * 当模块管理器开始运行时，此回调将被执行
	 */
	public void onModuleManagerStart();

	/**
	 * 当模块管理器停止运行时，此回调将被执行
	 */
	public void onModuleManagerStop();

}
